#!/bin/sh
# vim: set sw=4 ts=4 et:
ver="0.1"
help()
{
    cat <<HELP
rotatefile -- roda de ficheiro

UTILIZAÇÃO: rotatefile [-h] ficheiro

OPÇÕES: -h help text

EXEMPLO: rotatefile out Isto ira renomeiar por exemplo out.2 para out.3, out.1
para out.2, out para out.1 e criar um ficheiro out vazio

O numero máximo é 10

version $ver
HELP
   exit 0
}

error()
{
    echo "$1"
    exit 1
}
while [ -n "$1" ]; do
case $1 in
    -h) help;shift 1;;
    --) break;;
    -*) echo "erro: no such option $1. -h for help";exit 1;;
     *) break;;
esac
done

# verificação de input:
if [ -z "$1" ] ; then
 error "ERRO: têm de especificar um ficheiro, utiliza -h para ajuda"
fi
filen="$1"

# renomeia qualquer ficheiro .1 , .2 etc:
for n in  9 8 7 6 5 4 3 2 1; do
   if [ -f "$filen.$n" ]; then
      p=`expr $n + 1`
      echo "mv $filen.$n $filen.$p"
      mv $filen.$n $filen.$p
   fi
done

# renomeia o ficheiro original:
if [ -f "$filen" ]; then
   echo "mv $filen $filen.1"
   mv $filen $filen.1
fi
echo touch $filen
touch $filen
